/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package fr.insta.browser.service.tab;

import fr.insta.browser.service.history.IHistorySingleTabService;

/**
 * <p>ITabService interface.</p>
 *
 * @author Maarek
 * @version $Id: $Id
 */
public interface ITabService {

    /**
     * <p>getCurrentTab.</p>
     *
     * @return a {@link java.lang.Object} object.
     */
    Object getCurrentTab();

    /**
     * <p>setCurrentTab.</p>
     *
     * @param currentTab a {@link java.lang.Object} object.
     */
    void setCurrentTab(Object currentTab);

    /**
     * <p>addChangeTabListener.</p>
     *
     * @param listener a {@link fr.insta.browser.service.tab.ChangeTabListener} object.
     */
    void addChangeTabListener(ChangeTabListener listener);

    /**
     * <p>removeChangeTabListener.</p>
     *
     * @param listener a {@link fr.insta.browser.service.tab.ChangeTabListener} object.
     */
    void removeChangeTabListener(ChangeTabListener listener);

    /**
     * <p>getCurrentHistoryService.</p>
     *
     * @return a {@link fr.insta.browser.service.history.IHistorySingleTabService} object.
     */
    IHistorySingleTabService getCurrentHistoryService();

    /**
     * <p>getHistoryService.</p>
     *
     * @param tab a {@link java.lang.Object} object.
     * @return a {@link fr.insta.browser.service.history.IHistorySingleTabService} object.
     */
    IHistorySingleTabService getHistoryService(Object tab);
}
